//@author A0101906R
#ifndef CMDADD_H
#define CMDADD_H

#include "Cmd.h"
#include "CmdAdd.h"

namespace Twentyfifth {
	class CmdAdd : public Cmd {
	public:
		static const std::string FEEDBACK_ADDOK;
		static const std::string FEEDBACK_UNDOADDOK;
		static const std::string ERROR_INVALIDTASK;
		static const std::string ERROR_INVALIDSTART;
		static const std::string ERROR_INVALIDEND;
		static const std::string ERROR_INVALIDDEADLINE;
		static const std::string ERROR_INVALIDSEQUENCESE;
		static const std::string ERROR_INVALIDSEQUENCEDL;
		static const std::string ERROR_EMPTYDESC;
		Task taskAdded;

		CmdAdd();
		Status execution();
		Status undo(Status::StatusCode);
		void checkException();
		void rememberTask(Status&);
		void setDescForAdd(Status&);
		void setDescForUndo(Status&);
	};
}

#endif